From 2e34842b1ab81f5f0fc8caf3a797f1cf05fea42e Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Wed, 2 Feb 2011 15:20:42 +0900 Subject: [PATCH] Fixed GtkCellLayout buildable implementation to set cell properties explicitly set to "" (i.e. explicitly set to nothing). --- gtk/gtkcelllayout.c | 52 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/gtk/gtkcelllayout.c b/gtk/gtkcelllayout.c index d0ff6caacc..3fd59ade6b 100644 --- a/gtk/gtkcelllayout.c +++ b/gtk/gtkcelllayout.c @@ -807,37 +807,35 @@ cell_packing_end_element (GMarkupParseContext *context, CellPackingSubParserData *parser_data = (CellPackingSubParserData*)user_data; GtkCellArea *area; - /* Append the translated strings */ - if (parser_data->string->len) - { - area = gtk_cell_layout_get_area (parser_data->cell_layout); + area = gtk_cell_layout_get_area (parser_data->cell_layout); - if (area) + if (area) + { + /* translate the string */ + if (parser_data->string->len && parser_data->translatable) { - if (parser_data->translatable) - { - gchar *translated; - const gchar* domain; - - domain = gtk_builder_get_translation_domain (parser_data->builder); - - translated = _gtk_builder_parser_translate (domain, - parser_data->context, - parser_data->string->str); - g_string_set_size (parser_data->string, 0); - g_string_append (parser_data->string, translated); - } - - gtk_cell_layout_buildable_set_cell_property (area, - parser_data->builder, - parser_data->renderer, - parser_data->cell_prop_name, - parser_data->string->str); + gchar *translated; + const gchar* domain; + + domain = gtk_builder_get_translation_domain (parser_data->builder); + + translated = _gtk_builder_parser_translate (domain, + parser_data->context, + parser_data->string->str); + g_string_set_size (parser_data->string, 0); + g_string_append (parser_data->string, translated); } - else - g_warning ("%s does not have an internal GtkCellArea class and cannot apply child cell properties", - g_type_name (G_OBJECT_TYPE (parser_data->cell_layout))); + + if (parser_data->cell_prop_name) + gtk_cell_layout_buildable_set_cell_property (area, + parser_data->builder, + parser_data->renderer, + parser_data->cell_prop_name, + parser_data->string->str); } + else + g_warning ("%s does not have an internal GtkCellArea class and cannot apply child cell properties", + g_type_name (G_OBJECT_TYPE (parser_data->cell_layout))); g_string_set_size (parser_data->string, 0); g_free (parser_data->cell_prop_name); -- 2.30.2